import axios from 'axios'
import router from '@/router/index'
// import { adminStore } from '@/stores/admin'

// const admin = adminStore()

axios.defaults.headers.post['Content-Type'] = 'application/json'
// axios.defaults.headers['X-ACCESS-TOKEN'] = admin.activeToken() // TODO 首次加载获取还是每次获取，有些问题
const server = axios.create({
  baseURL: '/api',
  timeout: 5000,
  headers: { 'X-Custom-Header': 'foobar' }
})

const handleLogin = (message: string) => {
  console.log('会话失效', message)
  router.push({ path: '/login' })
}

//  let LoadingEl
//  请求拦截器
// server.interceptors.request.use(
//   (config) => {
//     // TODO 每次做校验好么
//     if (!admin.isActive()) {
//       handleLogin('请求拦截')
//       console.log('请求拦截无用')
//     }
//     return config
//   },
//   (error) => {
//     alert('请求出错！')
//     Promise.reject(error)
//   }
// )

//  回复拦截器
server.interceptors.response.use(
  (response) => {
    if (response.data.d === undefined) {
      alert(`${response.data.m}`)
      return Promise.reject(response.data.m)
    }
    return response.data.d
  },
  (error) => {
    if (error.response.status === 401) {
      handleLogin('返回拦截')
      return Promise.reject(error)
    }
    alert('请求异常')
    return Promise.reject(error)
  }
)

export default server
